An industrial controller typically provides control and monitoring services on a continuous real-time basis and it is undesirable that such real-time services be stopped or interrupted. However, when a problem arises and it is desired to identify the cause of the problem, it is often disadvantageous to use a traditional debugger. One of the main disadvantages arises from the fact that many of these traditional debuggers operate by inserting breakpoints into one or more programs that are run on the industrial controller. As is known, the insertion of a breakpoint causes a program to halt upon encountering the breakpoint during execution of the program, thereby allowing for examination of various conditions that may indicate the cause of the problem. Unfortunately, the use of breakpoints to debug a problem in an industrial controller operation causes an undesirable stoppage in the operation of various components including the industrial controller.
The stoppage issue associated with breakpoints may be avoided by using other techniques such as for example, by using a print statement. In the print statement technique, a memory buffer is used to store information pertaining to conditions that are present when the print statement is encountered during execution of the program. The print statement technique does not halt program execution, thereby addressing this handicap associated with the breakpoint technique. However, the information stored by using the print statement technique merely provides snapshots of the real-time activity performed by the industrial controller and may not necessarily help to identify the cause of a problem that occurs at a different instant in time.
Consequently, in place of the breakpoint or print statement techniques, a custom application programming interface (API) may be used to examine real-time parameters for trouble-shooting purposes. Though helpful in addressing some of the issues associated with breakpoints and print statements, the custom API approach also suffers from some handicaps. These handicaps include development cost, purchase cost, and licensing cost. Furthermore, the proprietary nature of a custom API prevents easy modification or improvement of the API by non-owners (such as licensees) when such modifications or improvements are desired by the non-owners at minimal cost.